package one_07_OOP.demo04;

public class Application {
    public static void main(String[] args) {
        // 继承
        // method01();
        // super关键字
        // method02();
        // 方法重写
        method03();
    }

    // 继承
    public static void method01(){
        Student student = new Student();
        // 子类继承父类，就会拥有父类的全部public的方法和属性
        student.say();
        System.out.println(student.money);
        // 父类私有的(pirvate)方法和属性无法被继承
//        student.age;
    }
    // Super关键字
    public static void method02(){
        Teacher teacher = new Teacher();
//        teacher.test("清江");
//        teacher.meth02();
    }
    // 方法重写
    public static void method03(){
        // 静态的方法和非静态的方法区别很大！
        A a = new A();
        B b = new A();

        // 非静态方法
        a.test();//A=>test()
        b.test();//B=>test()

        // 静态方法调用
        a.test01();//A=>test01()
        b.test01();//B=>test01()

        /*
        静态方法是类的方法，而非静态是对象的方法，
        有static时，b调用了B类，因为b时用B类定义的；
        没有static时，b调用的是对象的方法，而b是用A类new的，即b是A new出来的对象，因此调用了A的方法
        */
    }
}
